<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.15"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Library Evolutionary Algorithms for Clustering (LEAC): prob Namespace Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="leac_logo.png"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Library Evolutionary Algorithms for Clustering (LEAC)
   &#160;<span id="projectnumber">Version 1.0</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.15 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',false,false,'search.php','Search');
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">prob Namespace Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Method for calculate probability distributions.  
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:aa737d76e6416a765f004cd211eff712d"><td class="memTemplParams" colspan="2">template&lt;typename INPUT_ITERATOR , typename FITNESSOPERATION &gt; </td></tr>
<tr class="memitem:aa737d76e6416a765f004cd211eff712d"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceprob.html#aa737d76e6416a765f004cd211eff712d">makeDistRouletteWheel</a> (INPUT_ITERATOR aiiterator_instfirst, INPUT_ITERATOR aiiterator_instlast, const FITNESSOPERATION fitness_func) -&gt; std::vector&lt; decltype(fitness_func(*aiiterator_instfirst))&gt;</td></tr>
<tr class="separator:aa737d76e6416a765f004cd211eff712d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a35475d12404b2fbba2919682ad81f85d"><td class="memTemplParams" colspan="2">template&lt;typename INPUT_ITERATOR , typename FITNESSFUNCTGET , typename FITNESSFUNCTSET &gt; </td></tr>
<tr class="memitem:a35475d12404b2fbba2919682ad81f85d"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceprob.html#a35475d12404b2fbba2919682ad81f85d">linearNormalization</a> (INPUT_ITERATOR aiiterator_first, const INPUT_ITERATOR aiiterator_last, const FITNESSFUNCTGET fitness_funcGet, const FITNESSFUNCTSET fitness_funcSet, const decltype(fitness_funcGet(*aiiterator_first)) lrt_scale=1.0)</td></tr>
<tr class="memdesc:a35475d12404b2fbba2919682ad81f85d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Linear normalization.  <a href="#a35475d12404b2fbba2919682ad81f85d">More...</a><br /></td></tr>
<tr class="separator:a35475d12404b2fbba2919682ad81f85d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acc2e59fef80a0538b1eb1331460ee1e5"><td class="memTemplParams" colspan="2">template&lt;typename INPUT_ITERATOR , typename FITNESSOPERATION &gt; </td></tr>
<tr class="memitem:acc2e59fef80a0538b1eb1331460ee1e5"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceprob.html#acc2e59fef80a0538b1eb1331460ee1e5">linearNormalization</a> (INPUT_ITERATOR aiiterator_first, const INPUT_ITERATOR aiiterator_last, const FITNESSOPERATION fitness_func, const decltype(fitness_func(*aiiterator_first)) lrt_scale=1.0) -&gt; std::vector&lt; decltype(fitness_func(*aiiterator_first))&gt;</td></tr>
<tr class="separator:acc2e59fef80a0538b1eb1331460ee1e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1ac707b97a49e1e1a69b49785b322e8d"><td class="memTemplParams" colspan="2">template&lt;typename T_REAL &gt; </td></tr>
<tr class="memitem:a1ac707b97a49e1e1a69b49785b322e8d"><td class="memTemplItemLeft" align="right" valign="top">std::vector&lt; T_REAL &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceprob.html#a1ac707b97a49e1e1a69b49785b322e8d">getDistGKA</a> (const std::vector&lt; T_REAL &gt; &amp;aivector_randVar, const T_REAL airt_cm)</td></tr>
<tr class="memdesc:a1ac707b97a49e1e1a69b49785b322e8d"><td class="mdescLeft">&#160;</td><td class="mdescRight">GKA Probability Distribution <a class="el" href="citelist.html#CITEREF_Krishna:Murty:GAClustering:GKA:1999">[26]</a>.  <a href="#a1ac707b97a49e1e1a69b49785b322e8d">More...</a><br /></td></tr>
<tr class="separator:a1ac707b97a49e1e1a69b49785b322e8d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a75463766492bcc43a7c5b2f884da0a3e"><td class="memTemplParams" colspan="2">template&lt;typename T_REAL &gt; </td></tr>
<tr class="memitem:a75463766492bcc43a7c5b2f884da0a3e"><td class="memTemplItemLeft" align="right" valign="top">T_REAL&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceprob.html#a75463766492bcc43a7c5b2f884da0a3e">adaptiveProb</a> (T_REAL aiT_k1, T_REAL aiT_k3, T_REAL aiT_fmax, T_REAL aiT_faverage, T_REAL aiT_fprime)</td></tr>
<tr class="memdesc:a75463766492bcc43a7c5b2f884da0a3e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adaptively probability.  <a href="#a75463766492bcc43a7c5b2f884da0a3e">More...</a><br /></td></tr>
<tr class="separator:a75463766492bcc43a7c5b2f884da0a3e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9c4a6edf88cebc3b48d1cdf7d2f23e6e"><td class="memTemplParams" colspan="2">template&lt;typename T_PROBABILITY &gt; </td></tr>
<tr class="memitem:a9c4a6edf88cebc3b48d1cdf7d2f23e6e"><td class="memTemplItemLeft" align="right" valign="top">std::pair&lt; <a class="el" href="common_8hpp.html#a3f6c33fb604556cdc425e7aa2289d009">uintidx</a>, <a class="el" href="common_8hpp.html#a3f6c33fb604556cdc425e7aa2289d009">uintidx</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceprob.html#a9c4a6edf88cebc3b48d1cdf7d2f23e6e">getIdxPairUnlikeRoulette</a> (const std::vector&lt; T_PROBABILITY &gt; &amp;aivectorrt_probDist, <a class="el" href="common_8hpp.html#a3f6c33fb604556cdc425e7aa2289d009">uintidx</a> aiuintidx_begins)</td></tr>
<tr class="memdesc:a9c4a6edf88cebc3b48d1cdf7d2f23e6e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Selection a pair random index in [IdxBegin,n].  <a href="#a9c4a6edf88cebc3b48d1cdf7d2f23e6e">More...</a><br /></td></tr>
<tr class="separator:a9c4a6edf88cebc3b48d1cdf7d2f23e6e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acb45371263f36abbfdf479f7b0ccf4bb"><td class="memTemplParams" colspan="2">template&lt;typename T_PROBABILITY , typename FUNCTION_RAND &gt; </td></tr>
<tr class="memitem:acb45371263f36abbfdf479f7b0ccf4bb"><td class="memTemplItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="common_8hpp.html#a3f6c33fb604556cdc425e7aa2289d009">uintidx</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceprob.html#acb45371263f36abbfdf479f7b0ccf4bb">getIdxVectorRoulette</a> (const std::vector&lt; T_PROBABILITY &gt; &amp;aivectort_probDist, const bool aib_withRepeatedValues, const <a class="el" href="common_8hpp.html#a3f6c33fb604556cdc425e7aa2289d009">uintidx</a> aiuintidx_numbersToGenerate, const <a class="el" href="common_8hpp.html#a3f6c33fb604556cdc425e7aa2289d009">uintidx</a> aiuintidx_begins, FUNCTION_RAND function_rand01)</td></tr>
<tr class="memdesc:acb45371263f36abbfdf479f7b0ccf4bb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Selection a vector of random index in [IdxBegin,n].  <a href="#acb45371263f36abbfdf479f7b0ccf4bb">More...</a><br /></td></tr>
<tr class="separator:acb45371263f36abbfdf479f7b0ccf4bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a65b0579bfb13bf332dfbaadb9e5fe2d2"><td class="memTemplParams" colspan="2">template&lt;typename FUNCTION &gt; </td></tr>
<tr class="memitem:a65b0579bfb13bf332dfbaadb9e5fe2d2"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceprob.html#a65b0579bfb13bf332dfbaadb9e5fe2d2">getRandPairUnlike</a> (FUNCTION function_generate) -&gt; std::pair&lt; decltype(function_generate()), decltype(function_generate())&gt;</td></tr>
<tr class="memdesc:a65b0579bfb13bf332dfbaadb9e5fe2d2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get two random number diferent.  <a href="#a65b0579bfb13bf332dfbaadb9e5fe2d2">More...</a><br /></td></tr>
<tr class="separator:a65b0579bfb13bf332dfbaadb9e5fe2d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a736bde3100258c3c2d13ebfe2b6746f8"><td class="memTemplParams" colspan="2">template&lt;typename FUNCTION &gt; </td></tr>
<tr class="memitem:a736bde3100258c3c2d13ebfe2b6746f8"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceprob.html#a736bde3100258c3c2d13ebfe2b6746f8">getRandPairUnlikeInOrd</a> (FUNCTION function_generate) -&gt; std::pair&lt; decltype(function_generate()), decltype(function_generate())&gt;</td></tr>
<tr class="memdesc:a736bde3100258c3c2d13ebfe2b6746f8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get two random number diferent in order.  <a href="#a736bde3100258c3c2d13ebfe2b6746f8">More...</a><br /></td></tr>
<tr class="separator:a736bde3100258c3c2d13ebfe2b6746f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a15090755bafc59aa295f2d02be64af8c"><td class="memTemplParams" colspan="2">template&lt;typename FUNCTION &gt; </td></tr>
<tr class="memitem:a15090755bafc59aa295f2d02be64af8c"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceprob.html#a15090755bafc59aa295f2d02be64af8c">getWithoutRepeatsSet</a> (const <a class="el" href="common_8hpp.html#a3f6c33fb604556cdc425e7aa2289d009">uintidx</a> aiuintidx_numbersToGenerate, FUNCTION function_generate) -&gt; std::unordered_set&lt; decltype(function_generate())&gt;</td></tr>
<tr class="memdesc:a15090755bafc59aa295f2d02be64af8c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a set of random number diferent.  <a href="#a15090755bafc59aa295f2d02be64af8c">More...</a><br /></td></tr>
<tr class="separator:a15090755bafc59aa295f2d02be64af8c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abffb9a5b780336aceaf8eb78387dcd0c"><td class="memTemplParams" colspan="2">template&lt;typename T_RAND , typename FUNCTION &gt; </td></tr>
<tr class="memitem:abffb9a5b780336aceaf8eb78387dcd0c"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceprob.html#abffb9a5b780336aceaf8eb78387dcd0c">getRandUnlike</a> (const T_RAND at_unlike, FUNCTION function_generate) -&gt; decltype(function_generate())</td></tr>
<tr class="memdesc:abffb9a5b780336aceaf8eb78387dcd0c"><td class="mdescLeft">&#160;</td><td class="mdescRight">A random different than a given at_unlike.  <a href="#abffb9a5b780336aceaf8eb78387dcd0c">More...</a><br /></td></tr>
<tr class="separator:abffb9a5b780336aceaf8eb78387dcd0c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7fd4fb1dca3ca869c8cbb930c031a837"><td class="memTemplParams" colspan="2">template&lt;typename T_RAND , typename FUNCTION &gt; </td></tr>
<tr class="memitem:a7fd4fb1dca3ca869c8cbb930c031a837"><td class="memTemplItemLeft" align="right" valign="top">T_RAND&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespaceprob.html#a7fd4fb1dca3ca869c8cbb930c031a837">getRandSetUnlike</a> (const std::unordered_set&lt; T_RAND &gt; &amp;aiunorderedset_rand, FUNCTION function_generate)</td></tr>
<tr class="memdesc:a7fd4fb1dca3ca869c8cbb930c031a837"><td class="mdescLeft">&#160;</td><td class="mdescRight">Selection a random un like to set items.  <a href="#a7fd4fb1dca3ca869c8cbb930c031a837">More...</a><br /></td></tr>
<tr class="separator:a7fd4fb1dca3ca869c8cbb930c031a837"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5d7baf9636f685ea992784431fca725c"><td class="memItemLeft" align="right" valign="top">std::pair&lt; <a class="el" href="common_8hpp.html#a3f6c33fb604556cdc425e7aa2289d009">uintidx</a>, <a class="el" href="common_8hpp.html#a3f6c33fb604556cdc425e7aa2289d009">uintidx</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceprob.html#a5d7baf9636f685ea992784431fca725c">getElitistPairCross</a> (std::vector&lt; <a class="el" href="common_8hpp.html#a3f6c33fb604556cdc425e7aa2289d009">uintidx</a> &gt; *aoptvectoruintidx_chromPairsCross, <a class="el" href="common_8hpp.html#a3f6c33fb604556cdc425e7aa2289d009">uintidx</a> aiuintidx_idxChromTMinIdxSelect, <a class="el" href="common_8hpp.html#a3f6c33fb604556cdc425e7aa2289d009">uintidx</a> aiuintidx_idxChromTMaxIdxSelect)</td></tr>
<tr class="memdesc:a5d7baf9636f685ea992784431fca725c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Selection a pair random index.  <a href="#a5d7baf9636f685ea992784431fca725c">More...</a><br /></td></tr>
<tr class="separator:a5d7baf9636f685ea992784431fca725c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Method for calculate probability distributions. </p>
<p>functions for get randon number</p>
<dl class="section version"><dt>Version</dt><dd>1.0 </dd></dl>
<dl class="section date"><dt>Date</dt><dd>2015-2017 </dd></dl>
<dl class="section copyright"><dt>Copyright</dt><dd>GPLv3 license </dd></dl>
</div><h2 class="groupheader">Function Documentation</h2>
<a id="a75463766492bcc43a7c5b2f884da0a3e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a75463766492bcc43a7c5b2f884da0a3e">&#9670;&nbsp;</a></span>adaptiveProb()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T_REAL &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">T_REAL prob::adaptiveProb </td>
          <td>(</td>
          <td class="paramtype">T_REAL&#160;</td>
          <td class="paramname"><em>aiT_k1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">T_REAL&#160;</td>
          <td class="paramname"><em>aiT_k3</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">T_REAL&#160;</td>
          <td class="paramname"><em>aiT_fmax</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">T_REAL&#160;</td>
          <td class="paramname"><em>aiT_faverage</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">T_REAL&#160;</td>
          <td class="paramname"><em>aiT_fprime</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Adaptively probability. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">aiT_k1</td><td>a real number </td></tr>
    <tr><td class="paramname">aiT_k3</td><td>a real number </td></tr>
    <tr><td class="paramname">aiT_fmax</td><td>a real number </td></tr>
    <tr><td class="paramname">aiT_faverage</td><td>a real number </td></tr>
    <tr><td class="paramname">aiT_fprime</td><td>a real number ) </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="probability__distribution_8hpp_source.html#l00509">509</a> of file <a class="el" href="probability__distribution_8hpp_source.html">probability_distribution.hpp</a>.</p>

<p class="reference">References <a class="el" href="leac__utils_8hpp_source.html#l00063">utils::closeenough()</a>, and <a class="el" href="inparamclustering__getparameter_8hpp_source.html#l04560">inout::e</a>.</p>

<p class="reference">Referenced by <a class="el" href="gagr__fkcentroid_8hpp_source.html#l00070">eac::gagr_fkcentroid()</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="namespaceprob_a75463766492bcc43a7c5b2f884da0a3e_cgraph.svg" width="326" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>

</div>
</div>
<a id="a1ac707b97a49e1e1a69b49785b322e8d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1ac707b97a49e1e1a69b49785b322e8d">&#9670;&nbsp;</a></span>getDistGKA()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T_REAL &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">std::vector&lt; T_REAL &gt; prob::getDistGKA </td>
          <td>(</td>
          <td class="paramtype">const std::vector&lt; T_REAL &gt; &amp;&#160;</td>
          <td class="paramname"><em>aivector_randVar</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const T_REAL&#160;</td>
          <td class="paramname"><em>airt_cm</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>GKA Probability Distribution <a class="el" href="citelist.html#CITEREF_Krishna:Murty:GAClustering:GKA:1999">[26]</a>. </p>
<p>Obtains a probability distribution based on the Euclidean distance for the gene mutation </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">aivector_randVar</td><td>a vector with the values of a random variable </td></tr>
    <tr><td class="paramname">airt_cm</td><td>a constant usually <img class="formulaInl" alt="$\geq$" src="form_49.png"/> </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="probability__distribution_8hpp_source.html#l00411">411</a> of file <a class="el" href="probability__distribution_8hpp_source.html">probability_distribution.hpp</a>.</p>

<p class="reference">References <a class="el" href="interface__level1_8hpp_source.html#l00156">interfacesse::axpy()</a>, <a class="el" href="container__out_8hpp_source.html#l00050">inout::containerprint()</a>, <a class="el" href="interface__level1_8hpp_source.html#l00276">interfacesse::scal()</a>, and <a class="el" href="interface__level1_8hpp_source.html#l00135">interfacesse::sum()</a>.</p>

<p class="reference">Referenced by <a class="el" href="ga__integer__operator_8hpp_source.html#l00587">gaintegerop::mutationgka()</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="namespaceprob_a1ac707b97a49e1e1a69b49785b322e8d_cgraph.svg" width="323" height="190"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>

</div>
</div>
<a id="a5d7baf9636f685ea992784431fca725c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5d7baf9636f685ea992784431fca725c">&#9670;&nbsp;</a></span>getElitistPairCross()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::pair&lt; <a class="el" href="common_8hpp.html#a3f6c33fb604556cdc425e7aa2289d009">uintidx</a>, <a class="el" href="common_8hpp.html#a3f6c33fb604556cdc425e7aa2289d009">uintidx</a> &gt; prob::getElitistPairCross </td>
          <td>(</td>
          <td class="paramtype">std::vector&lt; <a class="el" href="common_8hpp.html#a3f6c33fb604556cdc425e7aa2289d009">uintidx</a> &gt; *&#160;</td>
          <td class="paramname"><em>aoptvectoruintidx_chromPairsCross</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="common_8hpp.html#a3f6c33fb604556cdc425e7aa2289d009">uintidx</a>&#160;</td>
          <td class="paramname"><em>aiuintidx_idxChromTMinIdxSelect</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="common_8hpp.html#a3f6c33fb604556cdc425e7aa2289d009">uintidx</a>&#160;</td>
          <td class="paramname"><em>aiuintidx_idxChromTMaxIdxSelect</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Selection a pair random index. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">aoptvectoruintidx_chromPairsCross</td><td>a std::vector&lt;uintidx&gt; </td></tr>
    <tr><td class="paramname">aiuintidx_idxChromTMinIdxSelect</td><td>a unsigned integer </td></tr>
    <tr><td class="paramname">aiuintidx_idxChromTMaxIdxSelect</td><td>a unsigned integer <a class="el" href="citelist.html#CITEREF_Franti:etal:GAclustering:gafranti:1997">[17]</a> </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="probability__selection_8hpp_source.html#l00423">423</a> of file <a class="el" href="probability__selection_8hpp_source.html">probability_selection.hpp</a>.</p>

<p class="reference">Referenced by <a class="el" href="cbga__fkcentroid_8hpp_source.html#l00477">eac::cbga_fkcentroid()</a>.</p>

</div>
</div>
<a id="a9c4a6edf88cebc3b48d1cdf7d2f23e6e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9c4a6edf88cebc3b48d1cdf7d2f23e6e">&#9670;&nbsp;</a></span>getIdxPairUnlikeRoulette()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T_PROBABILITY &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">std::pair&lt; <a class="el" href="common_8hpp.html#a3f6c33fb604556cdc425e7aa2289d009">uintidx</a>, <a class="el" href="common_8hpp.html#a3f6c33fb604556cdc425e7aa2289d009">uintidx</a> &gt; prob::getIdxPairUnlikeRoulette </td>
          <td>(</td>
          <td class="paramtype">const std::vector&lt; T_PROBABILITY &gt; &amp;&#160;</td>
          <td class="paramname"><em>aivectorrt_probDist</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="common_8hpp.html#a3f6c33fb604556cdc425e7aa2289d009">uintidx</a>&#160;</td>
          <td class="paramname"><em>aiuintidx_begins</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Selection a pair random index in [IdxBegin,n]. </p>
<p>Selection a pair random index proportional to its probability dstribution by aivectorrt_probDist </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">aivectorrt_probDist</td><td>a acumulate probability dstribution in [0,1] </td></tr>
    <tr><td class="paramname">aiuintidx_begins</td><td>a unsigned integer where begin number to selected <div class="fragment"><div class="line"> <span class="keyword">const</span> std::vector&lt;T_REAL&gt;&amp;&amp; lvectorprob_selectBySizeClusterK =</div><div class="line">  <a class="code" href="namespaceprob.html#aa737d76e6416a765f004cd211eff712d">prob::makeDistRouletteWheel</a></div><div class="line">  (lvectorrt_numInstClusterK.begin(),lvectorrt_numInstClusterK.end(),</div><div class="line">   [](<span class="keyword">const</span> <a class="code" href="common_8hpp.html#a3f6c33fb604556cdc425e7aa2289d009">uintidx</a>&amp; lui_numInstClusterK) -&gt; T_REAL</div><div class="line">   {</div><div class="line">     <span class="keywordflow">return</span> T_REAL(1.0) / T_REAL(lui_numInstClusterK);</div><div class="line">   }</div><div class="line">   );</div><div class="line"></div><div class="line">std::pair&lt;uintidx,uintidx&gt; lpair_mergeIdxK =   </div><div class="line">  <a class="code" href="namespaceprob.html#a9c4a6edf88cebc3b48d1cdf7d2f23e6e">prob::getIdxPairUnlikeRoulette</a></div><div class="line">  (lvectorprob_selectBySizeClusterK, </div><div class="line">   <a class="code" href="common_8hpp.html#a3f6c33fb604556cdc425e7aa2289d009">uintidx</a>(0)</div><div class="line">   );</div></div><!-- fragment --> </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="probability__selection_8hpp_source.html#l00064">64</a> of file <a class="el" href="probability__selection_8hpp_source.html">probability_selection.hpp</a>.</p>

<p class="reference">References <a class="el" href="ga__selection_8hpp_source.html#l00063">gaselect::getIdxRouletteWheel()</a>.</p>

<p class="reference">Referenced by <a class="el" href="ga__clustering__operator_8hpp_source.html#l01019">gaclusteringop::mergeMutation()</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="namespaceprob_a9c4a6edf88cebc3b48d1cdf7d2f23e6e_cgraph.svg" width="430" height="52"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>

</div>
</div>
<a id="acb45371263f36abbfdf479f7b0ccf4bb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acb45371263f36abbfdf479f7b0ccf4bb">&#9670;&nbsp;</a></span>getIdxVectorRoulette()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T_PROBABILITY , typename FUNCTION_RAND &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">std::vector&lt; <a class="el" href="common_8hpp.html#a3f6c33fb604556cdc425e7aa2289d009">uintidx</a> &gt; prob::getIdxVectorRoulette </td>
          <td>(</td>
          <td class="paramtype">const std::vector&lt; T_PROBABILITY &gt; &amp;&#160;</td>
          <td class="paramname"><em>aivectort_probDist</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const bool&#160;</td>
          <td class="paramname"><em>aib_withRepeatedValues</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="common_8hpp.html#a3f6c33fb604556cdc425e7aa2289d009">uintidx</a>&#160;</td>
          <td class="paramname"><em>aiuintidx_numbersToGenerate</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="common_8hpp.html#a3f6c33fb604556cdc425e7aa2289d009">uintidx</a>&#160;</td>
          <td class="paramname"><em>aiuintidx_begins</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">FUNCTION_RAND&#160;</td>
          <td class="paramname"><em>function_rand01</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Selection a vector of random index in [IdxBegin,n]. </p>
<p>Selection a vector of random index proportional to its probability dstribution by aivectorrt_probDist </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">aivectort_probDist</td><td>a const std::vector </td></tr>
    <tr><td class="paramname">aib_withRepeatedValues</td><td>a bool if is false get get with repeated values </td></tr>
    <tr><td class="paramname">aiuintidx_numbersToGenerate</td><td>a unsigned integer with numbers of items </td></tr>
    <tr><td class="paramname">aiuintidx_begins</td><td>a unsigned integer where begin number to selected </td></tr>
    <tr><td class="paramname">function_rand01</td><td>a random distribution function in [0,1] </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="probability__selection_8hpp_source.html#l00101">101</a> of file <a class="el" href="probability__selection_8hpp_source.html">probability_selection.hpp</a>.</p>

<p class="reference">References <a class="el" href="ga__selection_8hpp_source.html#l00063">gaselect::getIdxRouletteWheel()</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="namespaceprob_acb45371263f36abbfdf479f7b0ccf4bb_cgraph.svg" width="408" height="52"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>

</div>
</div>
<a id="a65b0579bfb13bf332dfbaadb9e5fe2d2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a65b0579bfb13bf332dfbaadb9e5fe2d2">&#9670;&nbsp;</a></span>getRandPairUnlike()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename FUNCTION &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">auto prob::getRandPairUnlike </td>
          <td>(</td>
          <td class="paramtype">FUNCTION&#160;</td>
          <td class="paramname"><em>function_generate</em></td><td>)</td>
          <td> -&gt; std::pair&lt;decltype(function_generate()),decltype(function_generate())&gt;
</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get two random number diferent. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">function_generate</td><td>a random distribution function </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="probability__selection_8hpp_source.html#l00168">168</a> of file <a class="el" href="probability__selection_8hpp_source.html">probability_selection.hpp</a>.</p>

<p class="reference">Referenced by <a class="el" href="gca__fkmedoid_8hpp_source.html#l00066">eac::gca_fkmedoid()</a>, and <a class="el" href="gga__vklabel_8hpp_source.html#l00073">eac::gga_vklabel()</a>.</p>

</div>
</div>
<a id="a736bde3100258c3c2d13ebfe2b6746f8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a736bde3100258c3c2d13ebfe2b6746f8">&#9670;&nbsp;</a></span>getRandPairUnlikeInOrd()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename FUNCTION &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">auto prob::getRandPairUnlikeInOrd </td>
          <td>(</td>
          <td class="paramtype">FUNCTION&#160;</td>
          <td class="paramname"><em>function_generate</em></td><td>)</td>
          <td> -&gt; std::pair&lt;decltype(function_generate()),decltype(function_generate())&gt;
</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get two random number diferent in order. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">function_generate</td><td>a random distribution function </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="probability__selection_8hpp_source.html#l00190">190</a> of file <a class="el" href="probability__selection_8hpp_source.html">probability_selection.hpp</a>.</p>

<p class="reference">References <a class="el" href="interface__level1_8hpp_source.html#l00091">interfacesse::swap()</a>.</p>

<p class="reference">Referenced by <a class="el" href="ga__clustering__operator_8hpp_source.html#l00518">gaclusteringop::mergeCrossover()</a>, and <a class="el" href="ga__binary__operator_8hpp_source.html#l00143">gabinaryop::onePointDistCrossover()</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="namespaceprob_a736bde3100258c3c2d13ebfe2b6746f8_cgraph.svg" width="394" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>

</div>
</div>
<a id="a7fd4fb1dca3ca869c8cbb930c031a837"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7fd4fb1dca3ca869c8cbb930c031a837">&#9670;&nbsp;</a></span>getRandSetUnlike()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T_RAND , typename FUNCTION &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">T_RAND prob::getRandSetUnlike </td>
          <td>(</td>
          <td class="paramtype">const std::unordered_set&lt; T_RAND &gt; &amp;&#160;</td>
          <td class="paramname"><em>aiunorderedset_rand</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">FUNCTION&#160;</td>
          <td class="paramname"><em>function_generate</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Selection a random un like to set items. </p>
<p>this function is used for implementate a point mutation operator, D_PM <a class="el" href="citelist.html#CITEREF_Lucasius:etal:GAclusteringMedoid:GCA:1993">[30]</a> </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">aiunorderedset_rand</td><td>IN a std::unordered_set </td></tr>
    <tr><td class="paramname">function_generate</td><td>a random distribution function</td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><span class="keywordflow">for</span> (<span class="keyword">auto</span> lchromfixleng_iter :lvectorchromfixleng_population) {</div><div class="line"></div><div class="line">      <span class="keywordflow">if</span> ( uniformdis_real01(<a class="code" href="clustering__operator__centroids_8hpp.html#acee5944d570f2fb7efdf1d4c801b30fb">gmt19937_eng</a>) </div><div class="line">           &lt; aiipcgapc_inParamGALucasius.getProbMutation() ) </div><div class="line">        {        </div><div class="line"></div><div class="line">          std::unordered_set&lt;uintidx&gt; lunorderedset_medoids</div><div class="line">            (lchromfixleng_iter-&gt;begin(),</div><div class="line">             lchromfixleng_iter-&gt;end()</div><div class="line">             );</div><div class="line"></div><div class="line">          <a class="code" href="common_8hpp.html#a3f6c33fb604556cdc425e7aa2289d009">uintidx</a> luintidx_medoidRand =</div><div class="line">            <a class="code" href="namespaceprob.html#a7fd4fb1dca3ca869c8cbb930c031a837">prob::getRandSetUnlike</a></div><div class="line">            (lunorderedset_medoids,</div><div class="line">             [&amp;]()</div><div class="line">             {</div><div class="line">         <span class="keywordflow">return</span> uniformdis_idxInstance(<a class="code" href="clustering__operator__centroids_8hpp.html#acee5944d570f2fb7efdf1d4c801b30fb">gmt19937_eng</a>);</div><div class="line">             }</div><div class="line">             );</div><div class="line"></div><div class="line">          <a class="code" href="common_8hpp.html#a3f6c33fb604556cdc425e7aa2289d009">uintidx</a> lui_positionGene = uniformdis_uiMutation0N(<a class="code" href="clustering__operator__centroids_8hpp.html#acee5944d570f2fb7efdf1d4c801b30fb">gmt19937_eng</a>); </div><div class="line">   </div><div class="line">          lchromfixleng_iter-&gt;setGene(lui_positionGene,luintidx_medoidRand);</div><div class="line">          </div><div class="line">        }</div><div class="line">    }</div><div class="line"></div><div class="line">}</div></div><!-- fragment --> 
<p class="definition">Definition at line <a class="el" href="probability__selection_8hpp_source.html#l00374">374</a> of file <a class="el" href="probability__selection_8hpp_source.html">probability_selection.hpp</a>.</p>

<p class="reference">Referenced by <a class="el" href="ga__integer__operator_8hpp_source.html#l00417">gaintegerop::mutationD_PM()</a>.</p>

</div>
</div>
<a id="abffb9a5b780336aceaf8eb78387dcd0c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abffb9a5b780336aceaf8eb78387dcd0c">&#9670;&nbsp;</a></span>getRandUnlike()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T_RAND , typename FUNCTION &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">auto prob::getRandUnlike </td>
          <td>(</td>
          <td class="paramtype">const T_RAND&#160;</td>
          <td class="paramname"><em>at_unlike</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">FUNCTION&#160;</td>
          <td class="paramname"><em>function_generate</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> -&gt; decltype(function_generate())
</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>A random different than a given at_unlike. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">at_unlike</td><td>a number </td></tr>
    <tr><td class="paramname">function_generate</td><td>a random distribution function</td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><span class="comment">// 3.7 Island migration</span></div><div class="line"></div><div class="line">std::uniform_int_distribution&lt;uintidx&gt; uniformdis_ui0NumIsland</div><div class="line">(0, aiinparam_GAProbAdapRangeK.getNumIsland()-1 );</div><div class="line"></div><div class="line"><span class="keywordflow">for</span> (<a class="code" href="common_8hpp.html#a3f6c33fb604556cdc425e7aa2289d009">uintidx</a> lui_l = 0; lui_l &lt; lvectorchrom_bestIsland.size(); lui_l++) {</div><div class="line">    </div><div class="line">   <span class="keywordflow">if</span> ( uniformdis_real01(<a class="code" href="clustering__operator__centroids_8hpp.html#acee5944d570f2fb7efdf1d4c801b30fb">gmt19937_eng</a>) &lt; aiinparam_GAProbAdapRangeK.getPe() ) {</div><div class="line">      </div><div class="line">      <span class="comment">//2. Randomly choose the island toward each individual </span></div><div class="line">      <span class="comment">//  will migrate.</span></div><div class="line">      </div><div class="line">      <a class="code" href="common_8hpp.html#a3f6c33fb604556cdc425e7aa2289d009">uintidx</a> lui_islandToward = </div><div class="line">        <a class="code" href="namespaceprob.html#abffb9a5b780336aceaf8eb78387dcd0c">prob::getRandUnlike</a></div><div class="line">        (lui_l,</div><div class="line">         [&amp;]() </div><div class="line">         {</div><div class="line">           <span class="keywordflow">return</span> uniformdis_ui0NumIsland(<a class="code" href="clustering__operator__centroids_8hpp.html#acee5944d570f2fb7efdf1d4c801b30fb">gmt19937_eng</a>);</div><div class="line">         }</div><div class="line">         );</div><div class="line">      </div><div class="line">      </div><div class="line">      std::vector&lt;ChromAgustin2012&lt;T_CLUSTERIDX,T_REAL&gt;* &gt;*</div><div class="line">        lvectorchrom_subpopulation = lvectorvector_subPopulation.at(lui_islandToward);</div><div class="line">      </div><div class="line">      <span class="comment">//3. Randomly choose an individual in the destiny island </span></div><div class="line">      <span class="comment">//  and change it by the migrating individual.</span></div><div class="line">      </div><div class="line">      <a class="code" href="common_8hpp.html#a3f6c33fb604556cdc425e7aa2289d009">uintidx</a> lui_idxIndividual =</div><div class="line">        uniformdis_ui0SubPopSize(<a class="code" href="clustering__operator__centroids_8hpp.html#acee5944d570f2fb7efdf1d4c801b30fb">gmt19937_eng</a>);</div><div class="line">      </div><div class="line">       *lvectorchrom_subpopulation-&gt;at(lui_idxIndividual) =</div><div class="line">         *lvectorchrom_bestIsland[lui_l];</div><div class="line">   }</div><div class="line">}</div></div><!-- fragment --><p> <a class="el" href="citelist.html#CITEREF_Agustin:etal:GAclusteringVarK:GGA:2012">[1]</a> </p>

<p class="definition">Definition at line <a class="el" href="probability__selection_8hpp_source.html#l00317">317</a> of file <a class="el" href="probability__selection_8hpp_source.html">probability_selection.hpp</a>.</p>

<p class="reference">Referenced by <a class="el" href="ga__binary__operator_8hpp_source.html#l00560">gabinaryop::bitMutation()</a>, and <a class="el" href="gga__vklabel_8hpp_source.html#l00073">eac::gga_vklabel()</a>.</p>

</div>
</div>
<a id="a15090755bafc59aa295f2d02be64af8c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a15090755bafc59aa295f2d02be64af8c">&#9670;&nbsp;</a></span>getWithoutRepeatsSet()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename FUNCTION &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">auto prob::getWithoutRepeatsSet </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="common_8hpp.html#a3f6c33fb604556cdc425e7aa2289d009">uintidx</a>&#160;</td>
          <td class="paramname"><em>aiuintidx_numbersToGenerate</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">FUNCTION&#160;</td>
          <td class="paramname"><em>function_generate</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> -&gt; std::unordered_set&lt;decltype(function_generate())&gt;
</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get a set of random number diferent. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">aiuintidx_numbersToGenerate</td><td>a unsigned integer with numbers to Generate </td></tr>
    <tr><td class="paramname">function_generate</td><td>a random distribution function </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="probability__selection_8hpp_source.html#l00215">215</a> of file <a class="el" href="probability__selection_8hpp_source.html">probability_selection.hpp</a>.</p>

<p class="reference">References <a class="el" href="container__out_8hpp_source.html#l00050">inout::containerprint()</a>.</p>

<p class="reference">Referenced by <a class="el" href="clustering__vksubclusterbinary_8hpp_source.html#l00072">eac::clustering_genetic()</a>, <a class="el" href="ga__clustering__operator_8hpp_source.html#l00690">gaclusteringop::crossoverCGA()</a>, <a class="el" href="gca__fkmedoid_8hpp_source.html#l00066">eac::gca_fkmedoid()</a>, <a class="el" href="hka__fkmedoid_8hpp_source.html#l00065">eac::hka_fkmedoid()</a>, <a class="el" href="clustering__operator__centroids_8hpp_source.html#l00205">clusteringop::randomInitialize()</a>, and <a class="el" href="tgca__vkcentroid_8hpp_source.html#l00176">eac::tgca_vkcentroid()</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="namespaceprob_a15090755bafc59aa295f2d02be64af8c_cgraph.svg" width="386" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>

</div>
</div>
<a id="a35475d12404b2fbba2919682ad81f85d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a35475d12404b2fbba2919682ad81f85d">&#9670;&nbsp;</a></span>linearNormalization() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename INPUT_ITERATOR , typename FITNESSFUNCTGET , typename FITNESSFUNCTSET &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void prob::linearNormalization </td>
          <td>(</td>
          <td class="paramtype">INPUT_ITERATOR&#160;</td>
          <td class="paramname"><em>aiiterator_first</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const INPUT_ITERATOR&#160;</td>
          <td class="paramname"><em>aiiterator_last</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const FITNESSFUNCTGET&#160;</td>
          <td class="paramname"><em>fitness_funcGet</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const FITNESSFUNCTSET&#160;</td>
          <td class="paramname"><em>fitness_funcSet</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const decltype(fitness_funcGet(*aiiterator_first))&#160;</td>
          <td class="paramname"><em>lrt_scale</em> = <code>1.0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Linear normalization. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">aiiterator_first</td><td>a Iterator vector </td></tr>
    <tr><td class="paramname">aiiterator_last</td><td>a Iterator vector </td></tr>
    <tr><td class="paramname">fitness_funcGet</td><td>a Fitness funtion get </td></tr>
    <tr><td class="paramname">fitness_funcSet</td><td>a Fitness funtion a set </td></tr>
    <tr><td class="paramname">lrt_scale</td><td>a scaling factor the value by default is 1.0 <div class="fragment"><div class="line"><a class="code" href="namespaceprob.html#a35475d12404b2fbba2919682ad81f85d">prob::linearNormalization</a></div><div class="line">  (lvectorchrom_population.begin(),</div><div class="line">  lvectorchrom_population.end(),</div><div class="line">  [](<span class="keyword">const</span> ChromosomeFEAC&lt;T_CLUSTERIDX,T_REAL,T_FEATURE,T_INSTANCES_CLUSTER_K&gt;</div><div class="line">  &amp;lchromfeac_iter) -&gt; T_REAL</div><div class="line">  {</div><div class="line">      <span class="keywordflow">return</span> lchromfeac_iter.getObjetiveFunc();</div><div class="line">  },</div><div class="line">  [](ChromosomeFEAC&lt;T_CLUSTERIDX,T_REAL,T_FEATURE,T_INSTANCES_CLUSTER_K&gt;</div><div class="line">  &amp;lchromfeac_iter, T_REAL airt_funcFitnessLineal)</div><div class="line">  {</div><div class="line">      lchromfeac_iter.setFitness(airt_funcFitnessLineal);</div><div class="line">  },</div><div class="line">  T_REAL(1.0)</div><div class="line"> );</div></div><!-- fragment --> </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="probability__distribution_8hpp_source.html#l00199">199</a> of file <a class="el" href="probability__distribution_8hpp_source.html">probability_distribution.hpp</a>.</p>

<p class="reference">References <a class="el" href="container__out_8hpp_source.html#l00050">inout::containerprint()</a>.</p>

<p class="reference">Referenced by <a class="el" href="cga__vklabel_8hpp_source.html#l00067">eac::cga_vklabel()</a>, <a class="el" href="feac__vklabel_8hpp_source.html#l00081">eac::feca_vklabel()</a>, <a class="el" href="gga__vklabel_8hpp_source.html#l00073">eac::gga_vklabel()</a>, <a class="el" href="ga__clustering__operator_8hpp_source.html#l02191">gaclusteringop::MO1()</a>, and <a class="el" href="ga__clustering__operator_8hpp_source.html#l02589">gaclusteringop::MO2()</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="namespaceprob_a35475d12404b2fbba2919682ad81f85d_cgraph.svg" width="367" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>

</div>
</div>
<a id="acc2e59fef80a0538b1eb1331460ee1e5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acc2e59fef80a0538b1eb1331460ee1e5">&#9670;&nbsp;</a></span>linearNormalization() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename INPUT_ITERATOR , typename FITNESSOPERATION &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">auto prob::linearNormalization </td>
          <td>(</td>
          <td class="paramtype">INPUT_ITERATOR&#160;</td>
          <td class="paramname"><em>aiiterator_first</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const INPUT_ITERATOR&#160;</td>
          <td class="paramname"><em>aiiterator_last</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const FITNESSOPERATION&#160;</td>
          <td class="paramname"><em>fitness_func</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const decltype(fitness_func(*aiiterator_first))&#160;</td>
          <td class="paramname"><em>lrt_scale</em> = <code>1.0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> -&gt; std::vector&lt;decltype(fitness_func(*aiiterator_first))&gt;
</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>The values of the variable store in a container are normalized according to a linear normalization procedure <a class="el" href="citelist.html#CITEREF_Alves:etal:GAclusteringLabelKVar:FEAC:2006">[2]</a> </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">aiiterator_first</td><td>a INPUT_ITERATOR </td></tr>
    <tr><td class="paramname">aiiterator_last</td><td>a INPUT_ITERATOR </td></tr>
    <tr><td class="paramname">fitness_func</td><td>a fintness function </td></tr>
    <tr><td class="paramname">lrt_scale</td><td>a number scale default 1.0</td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line">std::vector&lt;T_REAL&gt;&amp;&amp; lvectorT_partialFcCLinearNorm =</div><div class="line"><a class="code" href="namespaceprob.html#a35475d12404b2fbba2919682ad81f85d">linearNormalization</a></div><div class="line">(lvectorrt_genotypePartialFcC.begin(),</div><div class="line"> lvectorrt_genotypePartialFcC.end(),</div><div class="line"> [](<span class="keyword">const</span> T_REAL&amp; lt_metrici) -&gt; T_REAL</div><div class="line"> {</div><div class="line">   <span class="keywordflow">return</span> lt_metrici;</div><div class="line"> }</div><div class="line">);</div></div><!-- fragment --> 
<p class="definition">Definition at line <a class="el" href="probability__distribution_8hpp_source.html#l00314">314</a> of file <a class="el" href="probability__distribution_8hpp_source.html">probability_distribution.hpp</a>.</p>

<p class="reference">References <a class="el" href="container__out_8hpp_source.html#l00050">inout::containerprint()</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="namespaceprob_acc2e59fef80a0538b1eb1331460ee1e5_cgraph.svg" width="367" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>

</div>
</div>
<a id="aa737d76e6416a765f004cd211eff712d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa737d76e6416a765f004cd211eff712d">&#9670;&nbsp;</a></span>makeDistRouletteWheel()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename INPUT_ITERATOR , typename FITNESSOPERATION &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">auto prob::makeDistRouletteWheel </td>
          <td>(</td>
          <td class="paramtype">INPUT_ITERATOR&#160;</td>
          <td class="paramname"><em>aiiterator_instfirst</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">INPUT_ITERATOR&#160;</td>
          <td class="paramname"><em>aiiterator_instlast</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const FITNESSOPERATION&#160;</td>
          <td class="paramname"><em>fitness_func</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> -&gt; std::vector&lt;decltype(fitness_func(*aiiterator_instfirst))&gt;
</td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">aiiterator_instfirst</td><td></td></tr>
    <tr><td class="paramname">aiiterator_instlast</td><td></td></tr>
    <tr><td class="paramname">fitness_func</td><td><div class="fragment"><div class="line"><span class="keyword">const</span> std::vector&lt;T_REAL&gt;&amp;&amp; lvectorT_probDistRouletteWheel =</div><div class="line"><a class="code" href="namespaceprob.html#aa737d76e6416a765f004cd211eff712d">prob::makeDistRouletteWheel</a></div><div class="line">  (lvectorchromfixleng_population.begin(),</div><div class="line">   lvectorchromfixleng_population.end(),</div><div class="line">   [](<span class="keyword">const</span> <a class="code" href="classgaencode_1_1_chrom_fixed_length.html">gaencode::ChromFixedLength&lt;T_CLUSTERIDX,T_REAL&gt;</a>* lchromfixleng_iter) -&gt; T_REAL</div><div class="line">   {</div><div class="line">       <span class="keywordflow">return</span> lchromfixleng_iter-&gt;getFitness();</div><div class="line">   }</div><div class="line">  );</div></div><!-- fragment --> </td></tr>
  </table>
  </dd>
</dl>

<p class="definition">Definition at line <a class="el" href="probability__distribution_8hpp_source.html#l00071">71</a> of file <a class="el" href="probability__distribution_8hpp_source.html">probability_distribution.hpp</a>.</p>

<p class="reference">References <a class="el" href="container__out_8hpp_source.html#l00050">inout::containerprint()</a>, <a class="el" href="interface__level1_8hpp_source.html#l00046">interfacesse::copya()</a>, <a class="el" href="inparamclustering__getparameter_8hpp_source.html#l00503">inout::li_i</a>, <a class="el" href="interface__level1_8hpp_source.html#l00276">interfacesse::scal()</a>, and <a class="el" href="interface__level1_8hpp_source.html#l00135">interfacesse::sum()</a>.</p>

<p class="reference">Referenced by <a class="el" href="cga__vklabel_8hpp_source.html#l00067">eac::cga_vklabel()</a>, <a class="el" href="clustering__vksubclusterbinary_8hpp_source.html#l00072">eac::clustering_genetic()</a>, <a class="el" href="feac__vklabel_8hpp_source.html#l00081">eac::feca_vklabel()</a>, <a class="el" href="gaclustering__fklabel_8hpp_source.html#l00067">eac::gaclustering_fklabel()</a>, <a class="el" href="gaclustering__vktreebinary_8hpp_source.html#l00070">eac::gaclustering_vktreebinary()</a>, <a class="el" href="gagr__fkcentroid_8hpp_source.html#l00070">eac::gagr_fkcentroid()</a>, <a class="el" href="gas__fkcentroid_8hpp_source.html#l00070">eac::gas_fkcentroid()</a>, <a class="el" href="gca__fkmedoid_8hpp_source.html#l00066">eac::gca_fkmedoid()</a>, <a class="el" href="gcuk__vkcentroid_8hpp_source.html#l00072">eac::gcuk_vkcentroid()</a>, <a class="el" href="gga__vklabel_8hpp_source.html#l00073">eac::gga_vklabel()</a>, <a class="el" href="igka__fklabel_8hpp_source.html#l00080">eac::igka_fklabel()</a>, <a class="el" href="kga__fkcentroid_8hpp_source.html#l00072">eac::kga_fkcentroid()</a>, <a class="el" href="ga__clustering__operator_8hpp_source.html#l01019">gaclusteringop::mergeMutation()</a>, <a class="el" href="ga__clustering__operator_8hpp_source.html#l02191">gaclusteringop::MO1()</a>, <a class="el" href="ga__clustering__operator_8hpp_source.html#l02589">gaclusteringop::MO2()</a>, <a class="el" href="ga__clustering__operator_8hpp_source.html#l00938">gaclusteringop::splittingMutation()</a>, and <a class="el" href="tgca__vkcentroid_8hpp_source.html#l00176">eac::tgca_vkcentroid()</a>.</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="namespaceprob_aa737d76e6416a765f004cd211eff712d_cgraph.svg" width="400" height="190"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
</div>

</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Apr 19 2019 08:58:36 for Library Evolutionary Algorithms for Clustering (LEAC) by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.15
</small></address>
</body>
</html>
